package com.yjlove.myplay.ui.activity;

import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;

import com.bumptech.glide.DrawableRequestBuilder;
import com.bumptech.glide.Glide;
import com.bumptech.glide.Priority;
import com.bumptech.glide.load.resource.gif.GifDrawable;
import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.yjlove.myplay.R;
import com.yjlove.myplay.base.BaseActivity;
import com.yjlove.myplay.view.glide.GlideCircleTransform;
import com.yjlove.myplay.view.glide.GlideRoundTransform;
import com.yjlove.myplay.common.StringNetUrl;

/**
 * 作者 YJlvoe
 * 创建时间 2017/1/17.
 */
public class GlideTestActivity extends BaseActivity {

    private ImageView imageView1;
    private ImageView imageView2;
    private ImageView imageView3;
    private ImageView imageView4;
    private ProgressBar pb;

    @Override
    protected String getActivityTitle() {
        return getIntent().getStringExtra("title");
    }

    @Override
    protected int getActivityView() {
        return R.layout.activity_glidetest;
    }

    protected void initView() {
        imageView1 = (ImageView) findViewById(R.id.glide_image1);
        imageView2 = (ImageView) findViewById(R.id.glide_image2);
        imageView3 = (ImageView) findViewById(R.id.glide_image3);
        imageView4 = (ImageView) findViewById(R.id.glide_image4);
        pb = (ProgressBar) findViewById(R.id.glide_pb);
    }

    protected void initData() {

        DrawableRequestBuilder<Integer> thumbnailRequest = Glide
                .with(this)
                .load(R.mipmap.logo);

        Glide.with(this)
                .load(StringNetUrl.GLIDE_IMAGE_URL1)// 图片网络路径
                //.centerCrop()   // 视屏显示
                .fitCenter()    // 填充显示
                //.placeholder(R.mipmap.ic_launcher)// 初始化图片
                //.error(R.mipmap.ic_launcher)// 加载失败时显示的图片
                //.thumbnail(0.1f)// 缩略图（原图十分之一）
                .thumbnail(thumbnailRequest)// 缩略图（本地图片）
                // DiskCacheStrategy.NONE 什么都不缓存
                // DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像
                // DiskCacheStrategy.RESULT 仅仅缓存最终的图像，即降低分辨率后的（或者是转换后的）
                // DiskCacheStrategy.ALL 缓存所有版本的图像（默认行为）
                //.diskCacheStrategy(DiskCacheStrategy.RESULT)// 最小缓存模式
                .crossFade(2000)// 淡入淡出（2s）
                .priority(Priority.HIGH)// 优先加载
                // .priority(Priority.LOW) // 最后加载
                .into(imageView1);// 加载图片

        Glide.with(this)
                .load(StringNetUrl.GLIDE_IMAGE_URL2)
                .asGif()// 显示Gif图片
                .listener(new RequestListener<String, GifDrawable>() {
                    @Override
                    public boolean onException(Exception e, String model, Target<GifDrawable> target, boolean isFirstResource) {
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(GifDrawable resource, String model, Target<GifDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                        pb.setVisibility(View.GONE);// 加载结束，进度条消失
                        return false;
                    }
                })
                .into(imageView2);

        Glide.with(this)
                .load(StringNetUrl.GLIDE_IMAGE_URL3)
                .placeholder(R.mipmap.ic_launcher)// 初始化图片
                //.thumbnail(thumbnailRequest)// 缩略图（本地图片）
                .transform(new GlideCircleTransform(mActivity))//图片圆形显示
                .into(imageView3);

        Glide.with(this)
                .load(StringNetUrl.GLIDE_IMAGE_URL3)
                .placeholder(R.mipmap.ic_launcher)// 初始化图片
                //.thumbnail(thumbnailRequest)// 缩略图（本地图片）
                .transform(new GlideRoundTransform(mActivity, 50))//图片圆形显示
                .into(imageView4);
    }
}
